package cn.stylefeng.guns.modular.ums.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;

/**
 * <p>
 * 会员信息表
 * </p>
 *
 * @author yzb
 * @since 2019-11-07
 */
@Data
@TableName("ums_member")
public class Member implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 会员ID
     */
    @TableId(value = "member_id", type = IdType.AUTO)
    private Integer memberId;

    /**
     * 会员编码
     */
    @TableId(value = "member_sn")
    private String memberSn;

    /**
     * 会员推广码
     */
    @TableField("code")
    private String code;

    /**
     * 第三方OpenId
     */
    @TableField("open_id")
    private String openId;

    /**
     * 会员昵称
     */
    @TableField("nick_name")
    private String nickName;

    /**
     * 会员名称
     */
    @TableField("name")
    private String name;

    /**
     * 联系方式
     */
    @TableField("phone")
    private String phone;

    /**
     * 登录密码
     */
    @TableField("password")
    private String password;

    /**
     * 密码盐
     */
    @TableField("salt")
    private String salt;

    /**
     * 头像URL地址
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 性别
     */
    @TableField("sex")
    private String sex;

    /**
     * 身份证号码
     */
    @TableField("id_number")
    private String idNumber;

    /**
     * 会员角色
     */
    @TableField("member_role")
    private Integer memberRole;

    /**
     * 公司ID
     */
    @TableField("company_id")
    private Long companyId;

    /**
     * 公司名称
     */
    @TableField("company")
    private String company;

    /**
     * 担任角色
     */
    @TableField("post_name")
    private String postName;



    /**
     * VIP身份
     */
    @TableField("vip_grade")
    private Integer vipGrade;

    /**
     * 截止日期
     */
    @TableField("vip_end_date")
    private Date vipEndDate;

    /**
     * 个性签名内容
     */
    @TableField("signs")
    private String signs;

    /**
     * 会员来源
     */
    @TableField("source_type")
    private Integer sourceType;

    /**
     * 推荐人会员ID
     */
    @TableField("recommender_id")
    private Integer recommenderId;

    /**
     * 推广数量
     */
    @TableField("recommender_number")
    private Integer recommenderNumber;

    /**
     * 推广教师数量
     */
    @TableField("teacher_number")
    private Integer teacherNumber;

    /**
     * 推广学生数量
     */
    @TableField("student_number")
    private Integer studentNumber;

    /**
     * 推广绑定自己的学生数量
     */
    @TableField("bind_student_number")
    private Integer bindStudentNumber;

    /**
     * 推广完成任务的教师数量
     */
    @TableField("bind_teacher_number")
    private Integer bindTeacherNumber;

    /**
     * 学生是否绑定过/教师是否完成任务
     */
    @TableField("binded")
    private Integer binded;

    /**
     * 绑定的教师ID,针对学生
     */
    @TableField("binded_teacher_id")
    private Integer bindedTeacherId;

    /**
     * 绑定时间/完成任务时间
     */
    @TableField("binded_time")
    private Date bindedTime;

    /**
     *  推荐用户类型：0-普通用户，1-认证学生，2-认证教师，3-绑定学生，4-完成推广任务教师
     */
    @TableField("recommend_type")
    private Integer recommendType;


    /**
     * 备注信息
     */
    @TableField("remark")
    private String remark;

    /**
     * 状态
     */
    @TableField("status")
    private String status;

    /**
     * 添加时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 审核、认证时间
     */
    @TableField(value = "verify_time")
    private Date verifyTime;

    /**
     * 登录时间
     */
    @TableField("login_time")
    private Date loginTime;

    /**
     * 是否删除
     */
    @TableField("if_del")
    private Integer ifDel;

    /**
     * 删除时间
     */
    @TableField("delete_time")
    private Date deleteTime;

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public Integer getBinded() {
        return binded;
    }

    public void setBinded(Integer binded) {
        this.binded = binded;
    }

    public Integer getBindedTeacherId() {
        return bindedTeacherId;
    }

    public Date getVerifyTime() {
        return verifyTime;
    }

    public void setVerifyTime(Date verifyTime) {
        this.verifyTime = verifyTime;
    }

    public void setBindedTeacherId(Integer bindedTeacherId) {
        this.bindedTeacherId = bindedTeacherId;
    }

    public Date getBindedTime() {
        return bindedTime;
    }

    public void setBindedTime(Date bindedTime) {
        this.bindedTime = bindedTime;
    }

    public Integer getRecommendType() {
        return recommendType;
    }

    public void setRecommendType(Integer recommendType) {
        this.recommendType = recommendType;
    }

    public String getCode() {
        return code;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getPostName() {
        return postName;
    }

    public void setPostName(String postName) {
        this.postName = postName;
    }

    public Integer getTeacherNumber() {
        return teacherNumber;
    }

    public void setTeacherNumber(Integer teacherNumber) {
        this.teacherNumber = teacherNumber;
    }

    public Integer getStudentNumber() {
        return studentNumber;
    }

    public void setStudentNumber(Integer studentNumber) {
        this.studentNumber = studentNumber;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Integer getMemberId() {
        return memberId;
    }

    public void setMemberId(Integer memberId) {
        this.memberId = memberId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPassword() {
        return password;
    }

    public Integer getBindStudentNumber() {
        return bindStudentNumber;
    }

    public void setBindStudentNumber(Integer bindStudentNumber) {
        this.bindStudentNumber = bindStudentNumber;
    }

    public Integer getBindTeacherNumber() {
        return bindTeacherNumber;
    }

    public void setBindTeacherNumber(Integer bindTeacherNumber) {
        this.bindTeacherNumber = bindTeacherNumber;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public Integer getMemberRole() {
        return memberRole;
    }

    public void setMemberRole(Integer memberRole) {
        this.memberRole = memberRole;
    }

    public Integer getVipGrade() {
        return vipGrade;
    }

    public void setVipGrade(Integer vipGrade) {
        this.vipGrade = vipGrade;
    }

    public Date getVipEndDate() {
        return vipEndDate;
    }

    public void setVipEndDate(Date vipEndDate) {
        this.vipEndDate = vipEndDate;
    }

    public String getSigns() {
        return signs;
    }

    public void setSigns(String signs) {
        this.signs = signs;
    }

    public Integer getSourceType() {
        return sourceType;
    }

    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }

    public Integer getRecommenderId() {
        return recommenderId;
    }

    public void setRecommenderId(Integer recommenderId) {
        this.recommenderId = recommenderId;
    }

    public Integer getRecommenderNumber() {
        return recommenderNumber;
    }

    public void setRecommenderNumber(Integer recommenderNumber) {
        this.recommenderNumber = recommenderNumber;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getLoginTime() {
        return loginTime;
    }

    public void setLoginTime(Date loginTime) {
        this.loginTime = loginTime;
    }

    public Integer getIfDel() {
        return ifDel;
    }

    public void setIfDel(Integer ifDel) {
        this.ifDel = ifDel;
    }

    public Date getDeleteTime() {
        return deleteTime;
    }

    public void setDeleteTime(Date deleteTime) {
        this.deleteTime = deleteTime;
    }


    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    @Override
    public String toString() {
        return "Member{" +
        "memberId=" + memberId +
        ", name=" + name +
        ", phone=" + phone +
        ", password=" + password +
        ", salt=" + salt +
        ", avatar=" + avatar +
        ", sex=" + sex +
        ", idNumber=" + idNumber +
        ", memberRole=" + memberRole +
        ", vipGrade=" + vipGrade +
        ", vipEndDate=" + vipEndDate +
        ", signs=" + signs +
        ", sourceType=" + sourceType +
        ", recommenderId=" + recommenderId +
        ", recommenderNumber=" + recommenderNumber +
        ", remark=" + remark +
        ", status=" + status +
        ", createTime=" + createTime +
        ", updateTime=" + updateTime +
        ", loginTime=" + loginTime +
        ", ifDel=" + ifDel +
        ", deleteTime=" + deleteTime +
        "}";
    }
}
